# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : 分类评估方法-混淆矩阵.py
# @Author: dongguangwen
# @Date  : 2025-02-06 21:20
import pandas as pd
from sklearn.metrics import confusion_matrix

# 构建数据:真实值,预测值
# 样本集中共有6个恶性肿瘤样本, 4个良性肿瘤样本
y_true = ['恶性', '恶性', '恶性', '恶性', '恶性', '恶性', '良性', '良性', '良性', '良性']
# 1. 模型 A: 预测对了3个恶性肿瘤样本, 4个良性肿瘤样本
y_pre_A = ['恶性', '恶性', '恶性', '良性', '良性', '良性', '良性', '良性', '良性', '良性']
# 2. 模型 B: 预测对了6个恶性肿瘤样本, 1个良性肿瘤样本
y_pre_B = ['恶性', '恶性', '恶性', '恶性', '恶性', '恶性', '恶性', '恶性', '恶性', '良性']

# 混淆矩阵
A = confusion_matrix(y_true, y_pre_A, labels=['恶性', '良性'])
print(pd.DataFrame(A, columns=['恶性', '良性'], index=['恶性', '良性']))

B = confusion_matrix(y_true, y_pre_B, labels=['恶性', '良性'])
print(pd.DataFrame(B, columns=['恶性', '良性'], index=['恶性', '良性']))

"""
    恶性  良性
恶性   3   3
良性   0   4
    恶性  良性
恶性   6   0
良性   3   1
"""